package com.cts.tmall.biz.service;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.cts.tmall.dal.entity.TmallTel;
import com.cts.tmall.dal.mapper.TelMapper;
import com.google.common.collect.ImmutableMap;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Map;

@Service
public class TelService {

    @Autowired
    private TelMapper telMapper;

    public Map<String, Object> queryTel(Long createUserId) {
        TmallTel tmallTel = telMapper.selectOne(Wrappers.<TmallTel>lambdaQuery().eq(TmallTel::getCreateUserId, createUserId));
        return ImmutableMap.<String, Object>builder()
                .put("telType", tmallTel == null ? "" : tmallTel.getTelType())
                .put("telNum", tmallTel == null ? "" : tmallTel.getTelNum())
                .put("wechatNum", tmallTel == null ? "" : tmallTel.getWechatNum())
                .build();
    }

    public Map<String, Object> mergeTel(TmallTel tel) {
        TmallTel tmallTel = telMapper.selectOne(Wrappers.<TmallTel>lambdaQuery().eq(TmallTel::getCreateUserId, tel.getCreateUserId()));
        if (tmallTel != null) {
            tmallTel.setTelType(StringUtils.defaultString(tel.getTelType(), tmallTel.getTelType()));
            tmallTel.setTelNum(StringUtils.defaultString(tel.getTelNum(), tmallTel.getTelNum()));
            tmallTel.setWechatNum(StringUtils.defaultString(tel.getWechatNum(), tmallTel.getWechatNum()));
            telMapper.update(tmallTel, Wrappers.<TmallTel>lambdaUpdate().eq(TmallTel::getCreateUserId, tel.getCreateUserId()));
        } else {
            tmallTel = new TmallTel();
            tmallTel.setCreateUserId(tel.getCreateUserId());
            tmallTel.setTelType(tel.getTelType());
            tmallTel.setTelNum(tel.getTelNum());
            tmallTel.setWechatNum(tel.getWechatNum());
            telMapper.insert(tmallTel);
        }
        return ImmutableMap.<String, Object>builder()
                .put("telType", tmallTel == null ? "" : tmallTel.getTelType())
                .put("telNum", tmallTel == null ? "" : tmallTel.getTelNum())
                .put("wechatNum", tmallTel == null ? "" : tmallTel.getWechatNum())
                .build();
    }
}

